C 语言嵌套结构体

您所在的位置:网站首页 out of 结构 C 语言嵌套结构体

C 语言嵌套结构体

2024-06-09 05:45| 来源: 网络整理| 查看: 265

C 标准库 C 语言结构体和数组 C 语言嵌套结构体

C为我们提供了将一个结构嵌套在另一个结构中的功能,从而创建复杂的数据类型。例如,我们可能需要在结构中存储实体员工的地址。而地址也可以包含其他信息,例如街道编号,城市,地区和密码。因此,要存储员工的地址,我们需要将员工的地址存储到一个单独的结构中,并将该结构的地址嵌套到该结构的员工中。看下面的程序。

#include struct address  {     char city[20];     int pin;     char phone[14]; }; struct employee {     char name[20];     struct address add; }; void main () {     struct employee emp;     printf("输入员工信息?\n");     scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);     printf("打印员工信息....\n");     printf("姓名: %s\n城市: %s\nP编号: %d\n电话: %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone); }

输出结果

输入员工信息? Arun             Delhi            110001        1234567890     打印员工信息....    姓名: Arun       城市: Delhi   编号: 110001 电话: 1234567890

该结构可以通过以下方式嵌套。

通过单独的结构

通过嵌入式结构

1)分开的结构

在这里,我们创建了两个结构,但是从属结构应在主结构内部用作成员。看以下示例。

struct Date {    int dd;    int mm;    int yyyy;  }; struct Employee {       int id;    char name[20];    struct Date doj; }emp1;

可以看到,doj是date类型的变量。这里,doj被用作Employee结构中的成员。这样,我们可以在许多结构中使用Date结构。

2)嵌入式结构

嵌入式结构使我们能够在结构内部声明结构。因此,它需要较少的代码行,但不能在多个数据结构中使用。看以下示例。

struct Employee {       int id;    char name[20];    struct Date     {       int dd;       int mm;       int yyyy;      }doj; }emp1;访问嵌套结构

我们可以通过Outer_Structure.Nested_Structure.member访问嵌套结构的成员,如下所示:

e1.doj.dd e1.doj.mm e1.doj.yyyyC嵌套结构示例

让我们来看一个简单的C语言嵌套结构示例。

#include #include struct Employee {       int id;    char name[20];    struct Date     {       int dd;       int mm;       int yyyy;      }doj; }e1; int main( ) {    //存储员工信息    e1.id=101;    strcpy(e1.name, "Sonoo Jaiswal");//将字符串复制到字符数组中    e1.doj.dd=10;    e1.doj.mm=11;    e1.doj.yyyy=2014;    //打印第一个雇员信息    printf( "员工ID : %d\n", e1.id);    printf( "员工姓名 : %s\n", e1.name);    printf( "员工加入日期 (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd,e1.doj.mm,e1.doj.yyyy);    return 0; }

输出:

员工ID : 101 员工姓名 : Seagull Ali 员工加入日期 (dd/mm/yyyy) : 10/11/2014将结构传递给函数

和其他变量一样,结构也可以传递给函数。我们可以将结构成员传递给函数,或者一次传递结构变量。下面的示例将结构变量employee传递给display()函数,该函数用于显示雇员的详细信息。

#include struct address  {     char city[20];     int pin;     char phone[14]; }; struct employee {     char name[20];     struct address add; }; void display(struct employee); void main () {     struct employee emp;     printf("输入员工信息?\n");     scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);     display(emp); } void display(struct employee emp) {   printf("打印员工信息.....\n");   printf("%s %s %d %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone); }C 标准库 C 语言结构体和数组


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3